package com.vpclub.bean;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

/**
 * @author : leimingchao
 * @version V1.0
 * @Project: springdemo
 * @Package com.vpclub.bean
 * @Description: TODO
 * @date Date : 2021年05月28日 15:12
 * 1.编写后置处理器的实现类
 * 2.将后置处理器注册到spring的配置文件中
 */
public class MyBeanPostProcessor implements BeanPostProcessor {
    /**
     *
     * postProcessAfterInitialization
     *      始化之前调用
     *      Object bean：将要初始化的bean
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("postProcessBeforeInitialization:"+"【"+beanName +"】" + "bean将要调用初始化方法了。。。。。。，，这个bean是这样："+bean);
        //返回传入的bean
        return bean;
    }

    /**
     * postProcessAfterInitialization
     *      初始化方法之后调用
     *      Object bean：
     *      String beanName：bean在xml中配置的id
     * @param bean
     * @param beanName
     * @return
     * @throws BeansException
     */
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("postProcessAfterInitialization:"+"【"+beanName +"】"+ "bean初始化方法调用完了。。AfterInitialization，，这个bean是这样："+bean);
        //初始化之后返回的bean：返回的是什么，容器中保存的就是什么
        return bean;
    }
}
